{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "import pandas as pd\n",
    "from sklearn.metrics import r2_score\n",
    "import matplotlib.pyplot as plt\n",
    "import seaborn as sns"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(17379, 17)"
      ]
     },
     "execution_count": 20,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "hour = pd.read_csv(\"hour.csv\")\n",
    "hour.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>instant</th>\n",
       "      <th>dteday</th>\n",
       "      <th>season</th>\n",
       "      <th>yr</th>\n",
       "      <th>mnth</th>\n",
       "      <th>hr</th>\n",
       "      <th>holiday</th>\n",
       "      <th>weekday</th>\n",
       "      <th>workingday</th>\n",
       "      <th>weathersit</th>\n",
       "      <th>temp</th>\n",
       "      <th>atemp</th>\n",
       "      <th>hum</th>\n",
       "      <th>windspeed</th>\n",
       "      <th>casual</th>\n",
       "      <th>registered</th>\n",
       "      <th>cnt</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>1</td>\n",
       "      <td>2011-01-01</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>6</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0.24</td>\n",
       "      <td>0.2879</td>\n",
       "      <td>0.81</td>\n",
       "      <td>0.0</td>\n",
       "      <td>3</td>\n",
       "      <td>13</td>\n",
       "      <td>16</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>2</td>\n",
       "      <td>2011-01-01</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>6</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0.22</td>\n",
       "      <td>0.2727</td>\n",
       "      <td>0.80</td>\n",
       "      <td>0.0</td>\n",
       "      <td>8</td>\n",
       "      <td>32</td>\n",
       "      <td>40</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>3</td>\n",
       "      <td>2011-01-01</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>2</td>\n",
       "      <td>0</td>\n",
       "      <td>6</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0.22</td>\n",
       "      <td>0.2727</td>\n",
       "      <td>0.80</td>\n",
       "      <td>0.0</td>\n",
       "      <td>5</td>\n",
       "      <td>27</td>\n",
       "      <td>32</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>4</td>\n",
       "      <td>2011-01-01</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>3</td>\n",
       "      <td>0</td>\n",
       "      <td>6</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0.24</td>\n",
       "      <td>0.2879</td>\n",
       "      <td>0.75</td>\n",
       "      <td>0.0</td>\n",
       "      <td>3</td>\n",
       "      <td>10</td>\n",
       "      <td>13</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>5</td>\n",
       "      <td>2011-01-01</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>4</td>\n",
       "      <td>0</td>\n",
       "      <td>6</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0.24</td>\n",
       "      <td>0.2879</td>\n",
       "      <td>0.75</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   instant      dteday  season  yr  mnth  hr  holiday  weekday  workingday  \\\n",
       "0        1  2011-01-01       1   0     1   0        0        6           0   \n",
       "1        2  2011-01-01       1   0     1   1        0        6           0   \n",
       "2        3  2011-01-01       1   0     1   2        0        6           0   \n",
       "3        4  2011-01-01       1   0     1   3        0        6           0   \n",
       "4        5  2011-01-01       1   0     1   4        0        6           0   \n",
       "\n",
       "   weathersit  temp   atemp   hum  windspeed  casual  registered  cnt  \n",
       "0           1  0.24  0.2879  0.81        0.0       3          13   16  \n",
       "1           1  0.22  0.2727  0.80        0.0       8          32   40  \n",
       "2           1  0.22  0.2727  0.80        0.0       5          27   32  \n",
       "3           1  0.24  0.2879  0.75        0.0       3          10   13  \n",
       "4           1  0.24  0.2879  0.75        0.0       0           1    1  "
      ]
     },
     "execution_count": 21,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "hour.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>season</th>\n",
       "      <th>yr</th>\n",
       "      <th>mnth</th>\n",
       "      <th>hr</th>\n",
       "      <th>holiday</th>\n",
       "      <th>weekday</th>\n",
       "      <th>workingday</th>\n",
       "      <th>weathersit</th>\n",
       "      <th>temp</th>\n",
       "      <th>atemp</th>\n",
       "      <th>hum</th>\n",
       "      <th>windspeed</th>\n",
       "      <th>casual</th>\n",
       "      <th>registered</th>\n",
       "      <th>cnt</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>6</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0.24</td>\n",
       "      <td>0.2879</td>\n",
       "      <td>0.81</td>\n",
       "      <td>0.0</td>\n",
       "      <td>3</td>\n",
       "      <td>13</td>\n",
       "      <td>16</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>6</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0.22</td>\n",
       "      <td>0.2727</td>\n",
       "      <td>0.80</td>\n",
       "      <td>0.0</td>\n",
       "      <td>8</td>\n",
       "      <td>32</td>\n",
       "      <td>40</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>2</td>\n",
       "      <td>0</td>\n",
       "      <td>6</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0.22</td>\n",
       "      <td>0.2727</td>\n",
       "      <td>0.80</td>\n",
       "      <td>0.0</td>\n",
       "      <td>5</td>\n",
       "      <td>27</td>\n",
       "      <td>32</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>3</td>\n",
       "      <td>0</td>\n",
       "      <td>6</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0.24</td>\n",
       "      <td>0.2879</td>\n",
       "      <td>0.75</td>\n",
       "      <td>0.0</td>\n",
       "      <td>3</td>\n",
       "      <td>10</td>\n",
       "      <td>13</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>4</td>\n",
       "      <td>0</td>\n",
       "      <td>6</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0.24</td>\n",
       "      <td>0.2879</td>\n",
       "      <td>0.75</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   season  yr  mnth  hr  holiday  weekday  workingday  weathersit  temp  \\\n",
       "0       1   0     1   0        0        6           0           1  0.24   \n",
       "1       1   0     1   1        0        6           0           1  0.22   \n",
       "2       1   0     1   2        0        6           0           1  0.22   \n",
       "3       1   0     1   3        0        6           0           1  0.24   \n",
       "4       1   0     1   4        0        6           0           1  0.24   \n",
       "\n",
       "    atemp   hum  windspeed  casual  registered  cnt  \n",
       "0  0.2879  0.81        0.0       3          13   16  \n",
       "1  0.2727  0.80        0.0       8          32   40  \n",
       "2  0.2727  0.80        0.0       5          27   32  \n",
       "3  0.2879  0.75        0.0       3          10   13  \n",
       "4  0.2879  0.75        0.0       0           1    1  "
      ]
     },
     "execution_count": 22,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#remove the instant column\n",
    "hour = hour.drop('instant', axis = 1)\n",
    "#remove text column\n",
    "hour = hour.drop('dteday', axis=1)\n",
    "hour.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>season</th>\n",
       "      <th>yr</th>\n",
       "      <th>mnth</th>\n",
       "      <th>hr</th>\n",
       "      <th>holiday</th>\n",
       "      <th>weekday</th>\n",
       "      <th>workingday</th>\n",
       "      <th>weathersit</th>\n",
       "      <th>temp</th>\n",
       "      <th>atemp</th>\n",
       "      <th>hum</th>\n",
       "      <th>windspeed</th>\n",
       "      <th>casual</th>\n",
       "      <th>registered</th>\n",
       "      <th>cnt</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>count</th>\n",
       "      <td>17379.000000</td>\n",
       "      <td>17379.000000</td>\n",
       "      <td>17379.000000</td>\n",
       "      <td>17379.000000</td>\n",
       "      <td>17379.000000</td>\n",
       "      <td>17379.000000</td>\n",
       "      <td>17379.000000</td>\n",
       "      <td>17379.000000</td>\n",
       "      <td>17379.000000</td>\n",
       "      <td>17379.000000</td>\n",
       "      <td>17379.000000</td>\n",
       "      <td>17379.000000</td>\n",
       "      <td>17379.000000</td>\n",
       "      <td>17379.000000</td>\n",
       "      <td>17379.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>mean</th>\n",
       "      <td>2.501640</td>\n",
       "      <td>0.502561</td>\n",
       "      <td>6.537775</td>\n",
       "      <td>11.546752</td>\n",
       "      <td>0.028770</td>\n",
       "      <td>3.003683</td>\n",
       "      <td>0.682721</td>\n",
       "      <td>1.425283</td>\n",
       "      <td>0.496987</td>\n",
       "      <td>0.475775</td>\n",
       "      <td>0.627229</td>\n",
       "      <td>0.190098</td>\n",
       "      <td>35.676218</td>\n",
       "      <td>153.786869</td>\n",
       "      <td>189.463088</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>std</th>\n",
       "      <td>1.106918</td>\n",
       "      <td>0.500008</td>\n",
       "      <td>3.438776</td>\n",
       "      <td>6.914405</td>\n",
       "      <td>0.167165</td>\n",
       "      <td>2.005771</td>\n",
       "      <td>0.465431</td>\n",
       "      <td>0.639357</td>\n",
       "      <td>0.192556</td>\n",
       "      <td>0.171850</td>\n",
       "      <td>0.192930</td>\n",
       "      <td>0.122340</td>\n",
       "      <td>49.305030</td>\n",
       "      <td>151.357286</td>\n",
       "      <td>181.387599</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>min</th>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.020000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>1.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>25%</th>\n",
       "      <td>2.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>4.000000</td>\n",
       "      <td>6.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.340000</td>\n",
       "      <td>0.333300</td>\n",
       "      <td>0.480000</td>\n",
       "      <td>0.104500</td>\n",
       "      <td>4.000000</td>\n",
       "      <td>34.000000</td>\n",
       "      <td>40.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>50%</th>\n",
       "      <td>3.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>7.000000</td>\n",
       "      <td>12.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>3.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.500000</td>\n",
       "      <td>0.484800</td>\n",
       "      <td>0.630000</td>\n",
       "      <td>0.194000</td>\n",
       "      <td>17.000000</td>\n",
       "      <td>115.000000</td>\n",
       "      <td>142.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>75%</th>\n",
       "      <td>3.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>10.000000</td>\n",
       "      <td>18.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>5.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>2.000000</td>\n",
       "      <td>0.660000</td>\n",
       "      <td>0.621200</td>\n",
       "      <td>0.780000</td>\n",
       "      <td>0.253700</td>\n",
       "      <td>48.000000</td>\n",
       "      <td>220.000000</td>\n",
       "      <td>281.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>max</th>\n",
       "      <td>4.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>12.000000</td>\n",
       "      <td>23.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>6.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>4.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.850700</td>\n",
       "      <td>367.000000</td>\n",
       "      <td>886.000000</td>\n",
       "      <td>977.000000</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "             season            yr          mnth            hr       holiday  \\\n",
       "count  17379.000000  17379.000000  17379.000000  17379.000000  17379.000000   \n",
       "mean       2.501640      0.502561      6.537775     11.546752      0.028770   \n",
       "std        1.106918      0.500008      3.438776      6.914405      0.167165   \n",
       "min        1.000000      0.000000      1.000000      0.000000      0.000000   \n",
       "25%        2.000000      0.000000      4.000000      6.000000      0.000000   \n",
       "50%        3.000000      1.000000      7.000000     12.000000      0.000000   \n",
       "75%        3.000000      1.000000     10.000000     18.000000      0.000000   \n",
       "max        4.000000      1.000000     12.000000     23.000000      1.000000   \n",
       "\n",
       "            weekday    workingday    weathersit          temp         atemp  \\\n",
       "count  17379.000000  17379.000000  17379.000000  17379.000000  17379.000000   \n",
       "mean       3.003683      0.682721      1.425283      0.496987      0.475775   \n",
       "std        2.005771      0.465431      0.639357      0.192556      0.171850   \n",
       "min        0.000000      0.000000      1.000000      0.020000      0.000000   \n",
       "25%        1.000000      0.000000      1.000000      0.340000      0.333300   \n",
       "50%        3.000000      1.000000      1.000000      0.500000      0.484800   \n",
       "75%        5.000000      1.000000      2.000000      0.660000      0.621200   \n",
       "max        6.000000      1.000000      4.000000      1.000000      1.000000   \n",
       "\n",
       "                hum     windspeed        casual    registered           cnt  \n",
       "count  17379.000000  17379.000000  17379.000000  17379.000000  17379.000000  \n",
       "mean       0.627229      0.190098     35.676218    153.786869    189.463088  \n",
       "std        0.192930      0.122340     49.305030    151.357286    181.387599  \n",
       "min        0.000000      0.000000      0.000000      0.000000      1.000000  \n",
       "25%        0.480000      0.104500      4.000000     34.000000     40.000000  \n",
       "50%        0.630000      0.194000     17.000000    115.000000    142.000000  \n",
       "75%        0.780000      0.253700     48.000000    220.000000    281.000000  \n",
       "max        1.000000      0.850700    367.000000    886.000000    977.000000  "
      ]
     },
     "execution_count": 23,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "hour.describe()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<class 'pandas.core.frame.DataFrame'>\n",
      "RangeIndex: 17379 entries, 0 to 17378\n",
      "Data columns (total 15 columns):\n",
      "season        17379 non-null int64\n",
      "yr            17379 non-null int64\n",
      "mnth          17379 non-null int64\n",
      "hr            17379 non-null int64\n",
      "holiday       17379 non-null int64\n",
      "weekday       17379 non-null int64\n",
      "workingday    17379 non-null int64\n",
      "weathersit    17379 non-null int64\n",
      "temp          17379 non-null float64\n",
      "atemp         17379 non-null float64\n",
      "hum           17379 non-null float64\n",
      "windspeed     17379 non-null float64\n",
      "casual        17379 non-null int64\n",
      "registered    17379 non-null int64\n",
      "cnt           17379 non-null int64\n",
      "dtypes: float64(4), int64(11)\n",
      "memory usage: 2.0 MB\n"
     ]
    }
   ],
   "source": [
    "hour.info()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "season        0\n",
       "yr            0\n",
       "mnth          0\n",
       "hr            0\n",
       "holiday       0\n",
       "weekday       0\n",
       "workingday    0\n",
       "weathersit    0\n",
       "temp          0\n",
       "atemp         0\n",
       "hum           0\n",
       "windspeed     0\n",
       "casual        0\n",
       "registered    0\n",
       "cnt           0\n",
       "dtype: int64"
      ]
     },
     "execution_count": 25,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "hour.isnull().sum()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x110befb50>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 图形出现在Notebook里而不是新窗口\n",
    "%matplotlib inline\n",
    "\n",
    "fig = plt.figure()\n",
    "sns.distplot(hour.temp.values, bins=30, kde=True)\n",
    "plt.xlabel('Median value of temp', fontsize=12)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x110e9e710>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "fig = plt.figure()\n",
    "sns.distplot(hour.hum.values, bins=30, kde=True)\n",
    "plt.xlabel('Median value of hum', fontsize=12)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x114944cd0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "fig = plt.figure()\n",
    "sns.distplot(hour.windspeed.values, bins=30, kde=True)\n",
    "plt.xlabel('Median value of windspeed', fontsize=12)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 136,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x116fcc8d0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "fig = plt.figure()\n",
    "sns.distplot(hour.workingday.values, bins=30, kde=True)\n",
    "plt.xlabel('Median value of windspeed', fontsize=12)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAucAAAI8CAYAAABS/gUkAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMS4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvNQv5yAAAIABJREFUeJzs3XeYVPXZxvHvs8vSe5GuSBORDopdBEHBRoKxAYLRYIkxYkQxInYlmqCJGhFLLGB71VCMSkBFFOm9RAFpAov03pad5/1jhnV22WUpO3tmhvtzXXN5ym/OuWcQ5tlnf+eMuTsiIiIiIhK8lKADiIiIiIhImIpzEREREZE4oeJcRERERCROqDgXEREREYkTKs5FREREROKEinMRERERkTih4lxERERE5AiZ2etmts7M5uex38zsH2a2xMzmmlmrwzmuinMRERERkSP3BnDJIfZ3BhpEHn2Alw7noCrORURERESOkLtPADYdYsiVwFseNhkob2bV8zuuinMRERERkYJXE/gpan1VZNshFYlZnCSRsWGpB50hL2mV6wYdIVe7P3g06AiHVOLqgUFHEAnMA3WuDzpCnlKxoCMc0qPLhwcdQSRocfWXNNY1WtEq9W4hPB3lgKHuPvQIDpHb+5VvZhXnIiIiIiI5RArxIynGc1oF1I5arwWsye9JKs5FREREJPGEMoNOkJ9RwB1m9h7QFtjq7un5PUnFuYiIiIjIETKzd4F2QGUzWwU8BKQBuPsQ4FOgC7AE2AXceDjHVXEuIiIiIonHQ8Ge3v26fPY78PsjPa7u1iIiIiIiEifUORcRERGRxBMKtnMeK+qci4iIiIjECXXORURERCTheMBzzmNFnXMRERERkTihzrmIiIiIJB7NORcRERERkVhS57wQDHhyMBMmTqVihfKMGDYk6DhxZeLiNTz9n+mE3PlV6/r89vzTsu1P37KTBz+exPbd+wi5c2enFpzXsCbzVm3gsZFTw4PcubV9M9o3rp3LGUTkaDW4oBmXDryBlNQUpr//FRNeGp1t/xndO9C2Z0c8FGLvzr2MuP9V1i9ZTYnypbn+pT9Ss1k9Zn04gdEPvVGguepf0IwuA3tiqSnMfH883+TI1SaSKxQKsW/nHkbd/xrrl6ym3rlN6HjftaSmFSEzYz9jnnyHZZMWFmg2ESlESTrnXMV5IejapSPXd7uCPz/216CjxJXMUIinRk9jSO/2VC1bku5DPueCRrWod0K5rDGvfD2fTk1O5OozGvLjuq3c8fZXfPanmtQ/oTzv3HoJRVJTWL99N1e/+B/OP6UmRVL1yyCRgmApxuWP3si/ejzFtrUbuW3U4/xv7EzWL1mdNWbOyO+YOvwLABpd1IouD/bgzV5/Yf/eDMb97UOqnlKLqg0L9odmSzEue7Q3b/Z4im1rN3HLqMf4PkeueSO/Y3ok1ykXteKSB7vzdq+n2bl5O8Nv+ivb123hhIa1uOGt+/jrmX8o0HwiUohCmUEniAlVMoWgTYumlCtbJugYcWf+qo3UrlSGWhXLkFYklYubnsT4//2UbYwBO/dkALBjzz6qlCkBQImiRbIK8X37MzGsULOLJLtaLeqzacXPbP5pHZkZmcwdPYlTO7XONmbvjt1Zy0VLFgN3ADJ272XF9B/I2JsRg1z1IrnWk5mRybzRk2mUb67w8toFK9i+bgsA6xatokixNFKLqkclIvEl0H+VzKwU8AFQC0gFHgOWAIOB0sAGoLe7p5vZ74A+QNHImJ7uvsvMfgM8BGQCW939fDMrDrwEtAH2A3e7+1dm1hu4AigJ1AP+7e73FtoLlmzWbdtNtXIls9arlivJvFUbs425tX0zbnvjC96d8gO792Xycu/2Wfvm/bSBh/49mfStO3mi29nqmosUoLJVK7B1zS9/H7elb6J2i/oHjWvbsyPn3NyF1LQivH79EzHPVaZqxYNy1WpR76BxZ/TsyNk3dyY1rQj/yiVX485nkL5gBZn79sc0r4jEUJJOawm6mrkEWOPuzd29CfA58Dxwlbu3Bl4HDvyr+rG7n+7uzYH/ATdFtg8ELo5svyKy7fcA7t4UuA54M1KwA7QArgGaAteY2UG/czWzPmY23cymv/rWuwX8kuUAP9DOipKz//353OVc0aoe/+33a17o2Y4BH31HKBR+XtPalfn4zssYfsslvDZhAXszkvPXWyJBMDv4t1HuB/+dnfL2WAZf0Jcxg96l3R+6FkKug7fllmvq22N57oK7+e+g97ggR64qDWrSqf+1jPrza7GKKSJy1IIuzucBF5nZX8zsPKA20AQYa2azgQGEu+oATczsGzObB3QHDlw5OBF4I9JZT41sOxd4G8DdvwdWAA0j+75w963uvgdYCJyUM5S7D3X3Nu7e5uYbrivglywHVC1bkrVbd2Wt/7x1V9a0lQP+PeNHOjU5EYDmJ1Zh7/4QW3btzTam7gnlKFG0CEsiv64WkWO3de0mytWolLVetnpFtq3bnOf4eaMn0bhjm5jn2pZLru2H+Ls/f/QkTo3KVbZaRa57uS8f3z2EzSvXxTSriMRYKBTbR0ACLc7dfRHQmnCR/hTQDVjg7i0ij6bu3iky/A3gjkg3/BGgeOQYtxIu4msDs82sEgc3YKNFV3aZ6KLYwJxWsxIrN25n9eYdZOzPZMy8FVzQqFa2MdXLl2TKj2sBWLpuK/v2Z1KhVDFWb97B/szwX5w1W3awYsM2apQvVeivQSRZrZ7zI5XqVKNCrSqkpqXS7PKz+H7sjGxjKtWplrV8SvuWbFy+thByLaVinWqUj+RqevmZB+WqWKdq1nLD9i2ychUvW5Ie/7qHcU+/z8oZi2KeVUTkaAQ957wGsMndh5nZDsJzyquY2VnuPsnM0oCG7r4AKAOkR7Z1B1ZHjlHP3acAU8zscsJF+oTImC/NrCFwIvAD0KqwXyNAv4cGMW3WXLZs2UaHrj24/aaedLv84iCixJUiqSn0v6wNt735JaGQc2WretSvWp5/fjGHxjUq0e7UWtx9SWseHTmZ4d99D2Y88uuzMDNmrVjH6xMWUiQ1hRSD+y87nQqliud/UhE5LKHMEKMHvkHvt/qHb1n4wXjWLV5Nh75XsXreUr4fN5Mze3Wi3jlNCO3fz+6tO/nwTy9lPf+eb/9OsdIlSE0rwqmdWvOvnoOy3VHlWHL9Z+Ab3PDWfaSkpjDzg69Zv3g17ft2Y/W8ZfwwbiZtI7ky92eyZ+tOPv5T+Ba2bW/oRMWTqnLBnb/igjt/BcBbPQexc+O2Y84lIoXPk3TOueU2V6/QTm52MfAMEAIygNsIX8D5D6Ac4R8ennP3V8zsNuBewlNU5gFl3L23mX0MNCDcLf8CuAsoBgwh3JXPeUFoG3e/I3L+T4C/uvv4vDJmbFga3BuUj7TKdYOOkKvdHzwadIRDKnH1wKAjiATmgTrXBx0hT6lxftelR5cPDzqCSNDi6i/p3h8nx7RGK1bvzEBeb6Cdc3cfA4zJZdf5uYx9ifAdWHJu/3Uuz98D9M5l7BuEp8ccWL/ssMOKiIiISPwIcF54LAV9QaiIiIiIiEToYkgRERERSTxJOudcnXMRERERkTihzrmIiIiIJJ5Qcn75oDrnIiIiIiJxQp1zEREREUk8mnMuIiIiIiKxpM65iIiIiCQe3edcRERERERiSZ1zEREREUk8STrnXMV5AsvYsDToCLkq0r4H+78cFnQMERERkYRj7h50hngXl29QvBbmB6RVrht0BBERESlYFnSAaHvnjolpjVas2cWBvF51zkVEREQk4bjrS4hERERERCSG1DkXERERkcSTpBeEqnMuIiIiIhIn1DkXERERkcSjLyESEREREZFYUudcRERERBKP5pyLiIiIiEgsqXMuIiIiIoknpPuci4iIiIhIDKlzfpwb8ORgJkycSsUK5RkxbEjQcUREREQOj+acSzLq2qUjQwY/HnQMEREREeE475ybWaq7J+eEpcPUpkVTVqf/HHQMERERkSOTpPc5T+ri3MweAza4+98j608APwO/AtKBFkDj4BKKiIiIiPwi2ae1vAb0AjCzFOBaYDVwBvCAu+damJtZHzObbmbThw4dWmhhRUREROQweSi2j4Akdefc3Zeb2UYzawlUBWYBG4Gp7r7sEM8bChyoyj32SUVEREREkrw4j3gV6A1UA16PbNsZWBoREREROXZJOuc82ae1APwbuAQ4HRgTcJa40++hQXS/pS/LV66iQ9cefDRab5GIiIhIUJK+c+7u+8zsK2CLu2eaWdCR4sozj/QPOoKIiIjIkUvSznnSF+eRC0HPBH4D4O7jgfEBRhIRERERyVVSF+dm1hj4BPi3uy8OOo+IiIiIFIxk/aqapC7O3X0hUDfoHCIiIiJSwJJ0WsvxcEGoiIiIiEhCSOrOuYiIiIgkqQC/KCiW1DkXEREREYkT6pyLiIiISOLRnHMREREREYkldc5FREREJPFozrmIiIiIiMSSOuciIiIikniSdM65ivN87P7g0aAj5KlI+x5BR8hTxoalQUfIU1plfS+ViIiIxCcV5wksXovMeC7MRUREJElozrmIiIiIiMSSOuciIiIikniSdM65OuciIiIiInFCnXMRERERSTzqnIuIiIiISCypcy4iIiIiiUd3axERERERkVhS51xEREREEo/mnIuIiIiISCypcy4iIiIiiUdzzkVEREREJJbUOS8gExev4en/TCfkzq9a1+e355+WbX/6lp08+PEktu/eR8idOzu14LyGNZm3agOPjZwaHuTOre2b0b5x7QBeQfwZ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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x110f28150>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "#check relation with casual and registered and the total\n",
    "cols=hour.columns \n",
    "hour_corr = hour.corr().abs()\n",
    "\n",
    "plt.subplots(figsize=(13, 9))\n",
    "sns.heatmap(hour_corr, mask=hour_corr < 0.3, annot=True)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>season</th>\n",
       "      <th>yr</th>\n",
       "      <th>mnth</th>\n",
       "      <th>hr</th>\n",
       "      <th>holiday</th>\n",
       "      <th>weekday</th>\n",
       "      <th>workingday</th>\n",
       "      <th>weathersit</th>\n",
       "      <th>atemp</th>\n",
       "      <th>hum</th>\n",
       "      <th>windspeed</th>\n",
       "      <th>casual</th>\n",
       "      <th>registered</th>\n",
       "      <th>cnt</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>6</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0.2879</td>\n",
       "      <td>0.81</td>\n",
       "      <td>0.0</td>\n",
       "      <td>3</td>\n",
       "      <td>13</td>\n",
       "      <td>16</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>6</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0.2727</td>\n",
       "      <td>0.80</td>\n",
       "      <td>0.0</td>\n",
       "      <td>8</td>\n",
       "      <td>32</td>\n",
       "      <td>40</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>2</td>\n",
       "      <td>0</td>\n",
       "      <td>6</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0.2727</td>\n",
       "      <td>0.80</td>\n",
       "      <td>0.0</td>\n",
       "      <td>5</td>\n",
       "      <td>27</td>\n",
       "      <td>32</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>3</td>\n",
       "      <td>0</td>\n",
       "      <td>6</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0.2879</td>\n",
       "      <td>0.75</td>\n",
       "      <td>0.0</td>\n",
       "      <td>3</td>\n",
       "      <td>10</td>\n",
       "      <td>13</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>4</td>\n",
       "      <td>0</td>\n",
       "      <td>6</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0.2879</td>\n",
       "      <td>0.75</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   season  yr  mnth  hr  holiday  weekday  workingday  weathersit   atemp  \\\n",
       "0       1   0     1   0        0        6           0           1  0.2879   \n",
       "1       1   0     1   1        0        6           0           1  0.2727   \n",
       "2       1   0     1   2        0        6           0           1  0.2727   \n",
       "3       1   0     1   3        0        6           0           1  0.2879   \n",
       "4       1   0     1   4        0        6           0           1  0.2879   \n",
       "\n",
       "    hum  windspeed  casual  registered  cnt  \n",
       "0  0.81        0.0       3          13   16  \n",
       "1  0.80        0.0       8          32   40  \n",
       "2  0.80        0.0       5          27   32  \n",
       "3  0.75        0.0       3          10   13  \n",
       "4  0.75        0.0       0           1    1  "
      ]
     },
     "execution_count": 30,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#conclusion: month and season is related; temp and atemp is equal and registered/casual is related to cnt.\n",
    "hour = hour.drop('temp', axis = 1)\n",
    "hour.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 46,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(8645, 13)"
      ]
     },
     "execution_count": 46,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "train = hour[hour.yr == 0].drop('yr', axis = 1)\n",
    "train.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 47,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(8734, 13)"
      ]
     },
     "execution_count": 47,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "test = hour[hour.yr == 1].drop('yr', axis = 1)\n",
    "test.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 48,
   "metadata": {},
   "outputs": [],
   "source": [
    "#season [1, 4], mnth[1, 12], hr[0, 23], weekday [1, 7], weathersit [1, 4]\n",
    "#holiday one-hot already, workingday one-hot already\n",
    "\n",
    "from sklearn.preprocessing import OneHotEncoder\n",
    "month_enc = OneHotEncoder()\n",
    "hr_enc = OneHotEncoder()\n",
    "weekday_enc = OneHotEncoder()\n",
    "weathersit_enc = OneHotEncoder()\n",
    "season_enc = OneHotEncoder()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 49,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(8645, 53)"
      ]
     },
     "execution_count": 49,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "X_train_onehot = month_enc.fit_transform(train[\"mnth\"].values.reshape(-1, 1)).toarray()\n",
    "X_train_onehot = np.concatenate((X_train_onehot, hr_enc.fit_transform(train[\"hr\"].values.reshape(-1, 1)).toarray()), axis = 1)\n",
    "X_train_onehot = np.concatenate((X_train_onehot, weekday_enc.fit_transform(train[\"weekday\"].values.reshape(-1, 1)).toarray()), axis = 1)\n",
    "X_train_onehot = np.concatenate((X_train_onehot, weathersit_enc.fit_transform(train[\"weathersit\"].values.reshape(-1, 1)).toarray()), axis = 1)\n",
    "X_train_onehot = np.concatenate((X_train_onehot, season_enc.fit_transform(train[\"season\"].values.reshape(-1, 1)).toarray()), axis = 1)\n",
    "X_train_onehot = np.concatenate((X_train_onehot, train[\"holiday\"].values.reshape(-1, 1)), axis = 1)\n",
    "X_train_onehot = np.concatenate((X_train_onehot, train[\"workingday\"].values.reshape(-1, 1)), axis = 1)\n",
    "X_train_onehot.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 50,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(8734, 53)"
      ]
     },
     "execution_count": 50,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "X_test_onehot = month_enc.transform(test[\"mnth\"].values.reshape(-1, 1)).toarray()\n",
    "X_test_onehot = np.concatenate((X_test_onehot, hr_enc.transform(test[\"hr\"].values.reshape(-1, 1)).toarray()), axis = 1)\n",
    "X_test_onehot = np.concatenate((X_test_onehot, weekday_enc.transform(test[\"weekday\"].values.reshape(-1, 1)).toarray()), axis = 1)\n",
    "X_test_onehot = np.concatenate((X_test_onehot, weathersit_enc.transform(test[\"weathersit\"].values.reshape(-1, 1)).toarray()), axis = 1)\n",
    "X_test_onehot = np.concatenate((X_test_onehot, season_enc.transform(test[\"season\"].values.reshape(-1, 1)).toarray()), axis = 1)\n",
    "X_test_onehot = np.concatenate((X_test_onehot, test[\"holiday\"].values.reshape(-1, 1)), axis = 1)\n",
    "X_test_onehot = np.concatenate((X_test_onehot, test[\"workingday\"].values.reshape(-1, 1)), axis = 1)\n",
    "X_test_onehot.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 137,
   "metadata": {},
   "outputs": [],
   "source": [
    "#atemp,hum,windspeed are not one hot and need normalization\n",
    "from sklearn.preprocessing import MinMaxScaler\n",
    "ss_X = MinMaxScaler()#StandardScaler()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 138,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(8645, 56)"
      ]
     },
     "execution_count": 138,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "X_train = train[\"atemp\"].values.reshape(-1, 1)\n",
    "X_train = np.concatenate((X_train, train[\"hum\"].values.reshape(-1, 1)), axis = 1)\n",
    "X_train = np.concatenate((X_train, train[\"windspeed\"].values.reshape(-1, 1)), axis = 1)\n",
    "X_train = np.concatenate((X_train, X_train_onehot), axis = 1)\n",
    "X_train.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 139,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(8734, 56)"
      ]
     },
     "execution_count": 139,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "X_test = test[\"atemp\"].values.reshape(-1, 1)\n",
    "X_test = np.concatenate((X_test, test[\"hum\"].values.reshape(-1, 1)), axis = 1)\n",
    "X_test = np.concatenate((X_test, test[\"windspeed\"].values.reshape(-1, 1)), axis = 1)\n",
    "X_test = np.concatenate((X_test, X_test_onehot), axis = 1)\n",
    "X_test.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 140,
   "metadata": {},
   "outputs": [],
   "source": [
    "X_train = ss_X.fit_transform(X_train)\n",
    "X_test = ss_X.transform(X_test)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 141,
   "metadata": {},
   "outputs": [],
   "source": [
    "#X_train = np.concatenate((X_train, X_train_onehot), axis = 1)\n",
    "#X_train.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 142,
   "metadata": {},
   "outputs": [],
   "source": [
    "#X_test = np.concatenate((X_test, X_test_onehot), axis = 1)\n",
    "#X_test.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 143,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "143.79444765760556"
      ]
     },
     "execution_count": 143,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "y_train = train[\"cnt\"].values.reshape(-1, 1)\n",
    "y_train_mean = np.mean(y_train)\n",
    "y_train_mean"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 144,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "234.66636134646211"
      ]
     },
     "execution_count": 144,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "y_test = test[\"cnt\"].values.reshape(-1, 1)\n",
    "y_test_mean = np.mean(y_test)\n",
    "y_test_mean"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 145,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "234.66636134646214"
      ]
     },
     "execution_count": 145,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "y_train = y_train + (y_test_mean - y_train_mean)\n",
    "y_train_mean = np.mean(y_train)\n",
    "y_train_mean"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 146,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.68451132657143421"
      ]
     },
     "execution_count": 146,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#first use lr\n",
    "from sklearn.linear_model import LinearRegression\n",
    "lr_model = LinearRegression()\n",
    "lr_model.fit(X_train, y_train)\n",
    "y_train_pred_lr = lr_model.predict(X_train)\n",
    "r2_score(y_train, y_train_pred_lr)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 147,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.60012350729329822"
      ]
     },
     "execution_count": 147,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "y_test_pred_lr = lr_model.predict(X_test)\n",
    "r2_score(y_test, y_test_pred_lr)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 148,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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tfHqqz6ptT8ZOnQo48aNo6mpaaveb3hL0nasra2Nt7/97YwfP56IRv2YnPpSZrJq1Sra2tqYMGHCVq3DYXNJ2o69+uqrjBw50uDuRyKCkSNHbtNoiuEtSds5g7v/2dZzanhLklQYr3lLUkFaWnp/fYMGDeLAAw9k7dq1TJgwgR/84AeMGDFii7f1mc98hvPOO4/99tvvTeXXX389Cxcu5Morr9zidQIMGzaMNWvW1FV36tSpXHrppTQ3N68vW7hwITfeeCNXXHHFVm2/L9jzliR1661vfSuLFy/m4YcfZuedd+aqq67aqvVce+21GwX39qC5ubnHg3vdunUNXZ/hLUmq25QpU1i+fPn6+UsuuYRDDz2Ugw46iIsuugiAl19+menTp3PwwQdzwAEHMGfOHKDW6+14FPb3v/999tlnH97//vdz7733rl/faaedxty5c9fPDxs2DIA1a9Ywbdo0DjnkEA488EDmzZu3UdtWrFjBkUceycSJEznggAP45S9/Wdc+LViwgGOOOQaAlpYWTj/9dKZOncqee+75plC/6aabOOyww5g4cSKf/exn1wfyWWedRXNzM/vvv//6YwC1R39ffPHF/PVf/zW33XZbXW2pl8PmkqS6rFu3jvnz5zNr1iwA7rjjDpYuXcoDDzxAZnLsscdy9913097ezu67785Pf/pTAFavXv2m9axYsYKLLrqIRYsWMXz4cD7wgQ8wadKkbrc9dOhQfvzjH7PTTjvx7LPPMnnyZI499tg33fj1wx/+kKOOOoqvfvWrrFu3jldeeWWr9vOxxx7jrrvu4qWXXuLd7343Z511Fq2trcyZM4d7772XpqYmPve5z3HzzTdz6qmn8s1vfpOdd96ZdevWMW3aNB566CEOOuig9e2+5557tqod3TG8JUnd+tOf/sTEiRN58sknee9738uHP/xhoBbed9xxx/rgXbNmDUuXLuWII47gS1/6Eueffz7HHHMMRxxxxJvWd//99zN16lRGjar9eNYJJ5zA73//+27bkJlceOGF3H333eywww4sX76clStXsttuu62vc+ihh3L66afz+uuvc9xxxzFx4sSt2t/p06czZMgQhgwZwujRo1m5ciXz589n0aJFHHrooeuPyejRowG49dZbueaaa1i7di0rVqzg0UcfXR/eJ5xwwla1YXMcNpckdavjmveyZct47bXX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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x10fd2d350>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "f, ax = plt.subplots(figsize=(7, 5)) \n",
    "f.tight_layout() \n",
    "ax.hist(y_test - y_test_pred_lr,bins=40, label='Residuals Linear', color='b', alpha=.5); \n",
    "ax.set_title(\"Histogram of Residuals\") \n",
    "ax.legend(loc='best');"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 149,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x11096a790>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.figure(figsize=(4, 3))\n",
    "plt.scatter(y_test, y_test_pred_lr)\n",
    "plt.plot([-3, 3], [-3, 3], '--k')\n",
    "plt.axis('tight')\n",
    "plt.xlabel('True price')\n",
    "plt.ylabel('Predicted price')\n",
    "plt.tight_layout()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 150,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.68446704533135172"
      ]
     },
     "execution_count": 150,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "ss_y = StandardScaler()\n",
    "y_train = ss_y.fit_transform(y_train)\n",
    "y_test = ss_y.transform(y_test)\n",
    "\n",
    "lr_model.fit(X_train, y_train)\n",
    "y_train_pred_lr = lr_model.predict(X_train)\n",
    "r2_score(y_train, y_train_pred_lr)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 151,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.60018090281985104"
      ]
     },
     "execution_count": 151,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "y_test_pred_lr = lr_model.predict(X_test)\n",
    "r2_score(y_test, y_test_pred_lr)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 152,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x10fbfddd0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.figure(figsize=(4, 3))\n",
    "plt.scatter(y_test, y_test_pred_lr)\n",
    "plt.plot([-3, 3], [-3, 3], '--k')\n",
    "plt.axis('tight')\n",
    "plt.xlabel('True price')\n",
    "plt.ylabel('Predicted price')\n",
    "plt.tight_layout()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 153,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.59920202193350613"
      ]
     },
     "execution_count": 153,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from sklearn.linear_model import  RidgeCV\n",
    "\n",
    "alphas = [ 0.01, 0.1, 1, 10,100]\n",
    "ridge = RidgeCV(alphas=alphas, store_cv_values=True)  \n",
    "ridge.fit(X_train, y_train)\n",
    "\n",
    "y_test_pred_ridge = ridge.predict(X_test)\n",
    "r2_score(y_test, y_test_pred_ridge)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 154,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.68451077568406871"
      ]
     },
     "execution_count": 154,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "y_train_pred_ridge = ridge.predict(X_train)\n",
    "r2_score(y_train, y_train_pred_ridge)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 155,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAARgAAADQCAYAAADcQn7hAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMS4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvNQv5yAAAIABJREFUeJztnXmYlNW1r9/VRTVUN2i3jNqA4HAgjiAcQyTmBjUMQZAoCuSYnEOixiEnQfMQRY2QRMWEaMy98RpNFPWKCIgQxzhBEjVBBUEBQY9DEFrtboRu6AF6WvePqmqrmxq+qv6qvxrW+zz10FX11d6/Lrp+tffaa68tqophGEY6KPBagGEYuYsZjGEYacMMxjCMtGEGYxhG2jCDMQwjbZjBGIaRNsxgDMNIG2YwhmGkDTMYwzDSRjevBSRDnz59dMiQIV7LMIy8Z8OGDbtVtW+i67LKYIYMGcL69eu9lmEYeY+I7HBynU2RDMNIG2YwhmGkDc8MRkR6iMjrIvKWiGwVkZ97pcUwjPTgZQzmIHCWqtaKiB94RUSeVdV1HmoyDMNFPDMYDRaiqQ3d9YduVpzGMHIIT2MwIuITkU1AJfCCqr4W5ZrLRGS9iKyvqqrqepFGXnHvvffyz3/+02sZOYOnBqOqLao6AhgInC4iJ0W55l5VHa2qo/v2Tbjsbhgpc/fdd/ODH/yAu+66y2spOUNGrCKpajXwV2Cix1KMPOWee+7hyiuvZMqUKdx///1ey8kZvFxF6isiJaGfA8A5wHav9Bj5y7333svll1/O5MmTWbFiBYWFhV5Lyhm8XEU6EnhQRHwEjW65qj7loR4jD1FVXnzxRSZPnszKlSvp3r2715JyCi9Xkd4GRnrVv2E0NjZSWFjIkiVLaG1tNXNJAxkRgzGMrua+++7jtNNOo6qqCr/fb+aSJsxgjLzj/vvv59JLL2XQoEH06tXLazk5jRmMkVcsXryYSy65hAkTJrBq1Sp69OjhtaScxgzGyBsee+wxvv/97zN+/Hgzly4iq+rBGEYsVm8sZ9Fz7/JJdQNHlQSYO2EY00aWtbvmzDPP5IorruD22283c+kibARjZD2rN5Yz7/HNlFc3oEB5dQPzHt/M6o3lAKxdu5bm5mb69+/PXXfdZebShZjBGFnPoufepaGppd1jDU0tLHruXR566CHOPvtsFi1a5JG6/MamSEbW80l1Q9TH33v1Gf7r6TsYN24cP/7xj7tYlQFmMIaLOImDpIOjSgKUdzCZ2q1r+fzp33LWuHE8+eSTFBUVpV2HcShmMIYrhOMg4alKOA4CJG0yyRrV3AnD2vXdcqCWvS/ew0mjxiQ0l86aolemmi2YwRiuEC8OkuwHNhWj6t6toO01fY4o5ZrFK7lsytiE5pKqKa7eWM6CJ7ZS3dDU9lhnTDVXMYMx2pHqN3KsOEisx2MRz6jCz0dqA5i74i2aWpW6d/5GS101/i9PY+iwUykuLk6pr58sf4v1O/awdntV1PehozFF0+qmwWTzKMkMxmijM9/o0eIg4ceTIZYhhbV01CZom7nsfup2ug88gV6jzmXBE1vbNN+4ejNLX9tJiyo+EWZ9eRA3Tzs5Zl8tqjy87uND+obg+xDNmDpqXb2xPOp7FjaLyPcqUlPkdR1HSNG0RGs7GSOK9d64hRmM0UYy05yOf8zjhvdl5Ybydq8P+H1towynHB7wH/KhitQS7X7dtr+3mUu/6QuQAl9bGzeu3tzOLCLNI5Ypxuo7/D44GZVFM4FYI59ITaOPPiKqscTSEqvt8uoG5izbxF1r/4f6xlbKqxvwidCiSmmRH1UO6SNSh1smY3kwRhtOpznREttWbijnglFllJUEEKCsJMDC809uN60Ye9sahlz3NMfOe4Yh1z3N2NvWtCXDhRFJTnPdtpfZ/eRv6F72JfpNn09BYfskuqWv7Yz6uqWv7WTuhGEk0114ZOKEhqYW5izb1O53TDTyeXjdx8xd8VZcc4nUMvIXzyds+38q69pMtEWDNfX31jfF7SPWe5YKno1gRGQQ8BAwAGgF7lXV33mlx3A+zYk10lm7vYpXrzvrkNd3/HYN/6FHG+7vrU/84YqktaEmNHKZT0Fhe51jb1vT1ldHwo8ne4zFnGWbkro+PJK4YdVm6hpjm0uYplbnivbWNzFn2aakNSUi1nuWCl5OkZqBn6jqmyLSC9ggIi+o6jseasprxg3vy5J1H7f70EWb5jgZ6UROoQpCQ/NodBzu++JcG0nrgVoKevSk12nn0nPEJKTAd8g1iaY/Vy/bRHGhz9EHv7N0RR9u4Ut2GBkHz6ZIqvqpqr4Z+nk/sA3IjtB4DrJ6YzkrN5S3MxcBLhhVdkj8JVbgNvx4xylUIsMor25omz45MZf6d/9B+R++z8FP3wvqjGIuTlCCH3xfgXsfqFxgzDGlrrWVETEYERlCsHymnYvkEdGmPQqs3X7oez53wjAC/vYf6siRTqJYQzScBlvr3/sHVU/8Cn/vQfiPGJhUH7FoaQ0GPo0gb35c4zjWlAjPDUZEegIrgTmquq/j83YuUtcQ6wMebTo0bWQZC88/OWZAN9ncF6fUv/cPqv78K7oPOJ5+F/2Cgu7upf/va2h2ra1sJzLvqLN4ukwdOpN6JbBEVR/3Uks+s3pjOUL0gGes6dC0kYdOncJtxYu5pMrBT96l6s+/onDAca6bC7gb2MwF3PqS8HIVSYD7gG2qeodXOozglCbax0sgqTyWcOwlHR/WwgHHcfgZMzls9FTXzcU4lGQTJGPh5RRpLPAd4CwR2RS6fdNDPXlLrG8rJWg+Q2PkrHQkldhLIho+3EDz/s+RAh8lY2dR0D1++r/hDuOGuxOO8PJcpFcgqTwnI03Eyn8RvojNONk24Hbspf7916hatZCiYWPpO3Wuq23nCwUCd1w0AoC5j71FU4uz0WW04H5K/bvSipGVhLNry6sbDnH6aDGZRMG/wwPurcTUv/86VasWUth/KL3HX+Fau/lGu7y9JGauWR+DMWLTFbtnO2bXKl+YSlmcPTrl1Q3cuHozN087+RCdjc3uTI/qP3iDqtW3UthvKP0v+iUFPXq60m6+Ev5SSCZL2K0YjBlMhuFm4aZ4xMp7KSsJ8Op1Z7WNbKLx8LqPeXjdx+1GOU7zWBKh2krNK49Q2HcI/WaYubhBsqORVDapxsIMJsNIph7KuOF9Y9YsgUNHQkN6B1j34d64qzyfhDb01R1MnBeSjoVdkQL6XbgACnz4zFxcITwacfIlUObyiFk0i9b/R48erevXr/daRloZet3TKX9wI6c40conOKG0yM+BplbXV4MS0fDBemq3vESfc69BfJZV6xYBv4+F5wdLL8QqkhUmPHp1gohsUNXRia6zEUyGkUyNko5ETlc6blp0QsDvo/ZAE02tKXWfMg0fbqBy1S0U9hmMNh00g3GJaKORcLGrjkF8N6dFkZjBZBgdC1inSjLmIgRXgOobm70xl8dvprDPYPrNuNliLi4QHrV0nOZEZl93VRnOhAYjIv2BW4GjVHWSiJwAfEVV73NdTR4R6z942sgy1u/Y01bGsCs449gjeP2jvUmtMrhBw0dvUvn4zfh7D6LfjJvxBXp1af+5SGmRn/lTTkxoFrG2eriNkxHMA8Bi4IbQ/feAZQTT/I0UiLdSBLByQ3mX7o159YM9XdZXJAU9etK9bDh9p80zc+kkJQE/IlBd39S2IJAJhcGdJNr1UdXlBKvOoarNQPZUz8lA4q0UpSPdPtNorqkEoPuR/0b/mbfiCxzmsaLsJeD3cfGYwRxsbmVvfVPUs7m9xInB1IlIb0LTehEZA9SkVVWOE68iXLpKHWQKDf/axCd/upz9bz0PgLhYPS2fiCyTsXZ7VdzUBi9xMkW6BngCOFZEXgX6AtPTqirHSVT71q2ktUyj4V+bqFr5C7qVHkXR8V/2Wk7WIgIfLZzcdv/qGDV5M+HLKuEIJlTW8n8BZwA/AE5U1bfTLSyXiVcRbu6EYfh9ufet3rDjLapW/pJupUfRf+Yt+IoO91pS1qJKu+lPohKmXpLQYETkKqCnqm5V1S1ATxG5Mv3ScpdEFeHSkiLrIS11e4PmUjLAzMUlIqc/iUqYeknCTF4R2aSqIzo8tlFVR6ZVWRRyMZM3crn68ICfmgNNZFFytWPqtr1Mj8En4ysu8VpKTiDAR7d9MU3q6uNl3czkLRAR0ZATiYgPKOyswFBb9wPnApWqepIbbWYTHZernRy4lU0c+PhttLWVwJARFH/pTK/l5BQdpz9dldeSLE5WkZ4DlovI2SJyFrAU+ItL/T8ATHSprawjl5ekD3y8mcrHfk713x5EtYvTg/OATJj+OMHJCOZagsHdKwiOzJ4H/uRG56r699CRJXlJJkT508GBnVuofGwB3Q7rR7/pNyFidc3cpLTIn5GjlWgkNBgNfv3cHboZKRJtjtyZjY2ZyoGdW6hcsQBfr77BJLpi9w7xMoLB2/lTTvRahmNiGoyILFfVi0RkM1HWNVT1lLQq+0LHZcBlAIMHD+6KLl0jbCodd6+WVzdw9bJN7arI5Qp1217G16sPA2YtxNfTzCUWvgKhtVVRgnVz0VCqfAcEKCr0Ud/Y0iXBW7eJuYokIkeq6qcicnS051V1hysCglOkp5wEebNpFaljADfXUW1FpABtbaH1YJ2l/yfAXwDNrbSZBtClq0CdpdOrSCFz8QH3qeo5rqrLA3I5gNuRA7veYc/z/5d+02+i22H9zFwcEC6LEd43tPD8kx0Xe8om4kbfVLUFqBeRtGRGichS4J/AMBHZJSLfT0c/XpCrAdyOHNj1DpUr5qMtTSCpHUKf72TKvqF04GQV6QCwWUReAOrCD6rqjzrbuarO6mwbmUpJkZ+99bmV19KRA7u2UbliPr7iUvrPvJVuvXp7LSlrydUvJCcG83ToZjhk9cZyag/k9mHqBz97n8oVNwXNZZaZS2fJhH1D6cDJMvWDIlIIDCe44PGuqjamXVkWs+i5d7u8OlxX0+3w/gSGjqL07Evo1quP13KymkzZN5QOnJTM/CZwD/ABwVWzoSLyA1V9Nt3ispVcHe4CNFbtwF96JL5AL/pOu85rOVmP28eEZBpOpkh3AONU9X0AETmW4JTJDCYGuZhAB3Dwk3epWPYzik/4Gr0n/NBrOVnNxWMGc/O0k72WkXac5HBXhs0lxIdAZZr05ARzJwzDX5BbNV0OfvoeFctvwld0GId/ZYbXcrKK0iJ/u9Icd84YkRfmAs5GMFtF5BlgOcEYzIXAGyJyPoCqPp5GfVnJtJFlXP/42zkThzn46XtULPsZvkCvYED3sL5eS8oqquub2HjTeK9leIITg+kBVBCsagdQBRwBTCFoOGYwHVi9sZz6rj5gKE1oSzO7n/g1vh49Q+bSz2tJWUeurhA5wckq0uyuEJJL5FLSlPi60Xfa9RQEepq5pEAurxA5wfbRp4FcWEU6+Nn71Lz2GACF/Y8xc0mCcPTtkFKoeYgdHesi4d3T2R55OfjZ+1QuuxEpLKLXqRPtONcORO6ALy708a3Tyli7vSprNip2JWYwLpEru6cjzWXAtxeauXSgrCSQk5sS00W8ejDXxHuhqt7hvpzsJRd2TzdWfBAylwADvr2Qbof391qSp3Ss1RPw+xg3vC9jb1tjoxWHxIvB9ArdRhMsl1kWul0OnJB+adlFLsRdGnd/jHQvpv8sMxegrSAYBEcuF4wqY+WGcsqrG9qOaJ2zbBMn/OzZjDimNROJVw/m5wAi8jxwmqruD91fAKzoEnVZRDZn72pzI9KtkJ4njqPo386gwN/da0kZg/LFtGjsbWuijlLrm1qZ+9hbQGYcOJ9JOFlFGgxEbm5sBIakRU0WM3fCMLIxd7ex8kPK77mUho/eBDBziUJ4dBpvlNrUojmVnuAWTgzm/wGvi8gCEZkPvAY8lF5Z2ce0kWX8x5jsqhncWPkRFY/eCCJ0KznSazldht8nSeVnKDD2tjWUFPnjXpcL02S3cXI29S3AbGAvUA3MVtVb3ehcRCaKyLsi8r6IZP3W3GzaX9JY9S8qHr0B8fnpP+tW/KX5YTAlAT/Fhd2iFtiOR3l1Q8IaP/mcsRsLp0ZeBOxT1d8Bu0RkaGc7DtX7vQuYRDBoPEtEsj54XJYFf2TN+yqpWHp90Fy+vRB/6VFeS+oSLh4zmE3zx1OT4gmaTa1KwB/9I+P3SV5n7MYiocGEpkXXAvNCD/mBh13o+3TgfVX9MFTA6lHgPBfa9ZRxwzN/I6CvVx96jpgYGrnkh7kU+QvaRpiJRhodD5KP5EBTK3fOGEFJ4IvpUmmRn0XTT7UAbxScJNp9CxgJvAmgqp+ISC8X+i4Ddkbc3wV8ueNF2XYu0trtVV5LiEnj7o+RboX4SwZQ+rXvei2nS4ncfDp3wrBDkiLDOS/hAlDh86w6clRJIGPPgc5EnBhMo6qqiCiAiBS71He0RZdoB7zdC9wLwXORXOo7bWTqUnXj7o+pWHo93Ur6M+Di3yCSjWte7hA2h0TnEHU0oXzfuJgKTgxmuYjcA5SIyKXA93DnbOpdwKCI+wOBT1xo11NEIMZZdp4RNhcpKKDPN6/OSnMpLvTRqsTNlvYXfHHeUEcipzRAwlGIUxMy4uOkXMNvROQbwD5gGHCTqr7gQt9vAMeHAsblwEzg2y606xmrN5ZnnLk07d5JxaPXIyL0n3kL/t4DvZaUEvWNLfx2xggWPLGV6hhB2ljm4i8QFkxN/jxnmwp1HidFv3+lqtcCL0R5LGVUtVlEfgg8B/iA+1V1a2fa9JobVm32WsIh7P3bAwDBgG7vQfEvzmDCgdmDzcktMPtEWHRhMAAb3u1uI5Kuw8kU6RsEV5EimRTlsaRR1WeAZzrbTiawemM5dY2Zt9mxz7nX0FJXjf+IzP4glQT8HGxujToFCsc+UtlQ2qraZi6RMZXwka1g6f3pJOYytYhcISKbgeEi8nbE7SMg876qPeYnyzd5LaGNps93sfup22ltOkhB9+KMMZdCX/TYjwALpp7IwvNPbssj8oXiRJFFm1LJlA2PfKKZUy4f2ZopxBvBPELwaJKFQGSW7X5V3ZNWVVnG6o3ltGRI7KXp811UPHo92tpKS+3nFGRInou/AH49/dSoy8P/MWZw2ygi3mgi2Q2lkas+sczJ0vvTS8wRjKrWqOq/gN8Be1R1h6ruAJpE5JB8lXwmU74Fm/aUh8ylJRjQzRBzKQAWXTiCaSPL2kYp4SM8fjtjBKOPPoKxt61h6HVPM/a2NTFLH8ydMOyQJLjIcgoXjxncru3IcpWxkussvT+9OInB3A2cFnG/LspjeU0m5L407SmnYum8kLncSmHfo72W1EYPf0G7EUrkKCWZ2Ehnlo6jJddZXkv6cWIwovrF4quqtoqIldrMMLSliYIePekz9acZZS5A3CNc4sVGohlHqkvHltfiDU6M4kMR+RHBUQvAlQRPdzQygJb6GgoCh1HYdwhHfu/3iGTXQRFdGRuxvJaux8lf4+XAGQST4cL7hS5LpyjDGU17P+HTxT9i37pggcFMNZfSOHVULDaS2zipB1OpqjNVtZ+q9lfVb6uqnU3tMU17P6Vi6fVoSxOBY//dazkx8fuE+VNiZ9FGC9xabCR3iHeqwE9V9dci8n+IvgnxR2lVZsQkaC7z0OZG+s+8hcJ+nS7Pk5CSgL8t3T4yjlHf2Mze+uip+2UO4hwWG8lt4sVgtoX+Xd8VQgxnaHMjlctuRJsO0n9Wes2ltMjP/CknxlzNARh63dNRXyvg+Pwgi43kLvFOFXgy9O+DXSfHSIR0K6Tk67Pxlx5FYb9jXG27tMjP5FOObDulsKgw8RpArOQ3i6EYEH+K9CRRpkZhVHVqWhQZUWmuqaBp904Cx46mePhXXW9fgPlTTkx6v47llxjxiBfk/Q1wO/AR0AD8MXSrBbakX5oRprmmgs8emcfuZ++ktfFAWvo4qiSQ0n6daNm5+X7gu/EF8aZIfwMQkV+q6tcinnpSRP6edmUGAM01lXy29Hr0YB39Zt5CQWEP1/sIjziuXhZ9w2ainBSLoRixcJI40VdE2ib7oQJRmV/ZOgcImss89EAt/WbeQvcBx7neR+SIw3JSDLdxYjBXA38Vkb+KyF+BtcCcznQqIheKyFYRaRWR0Z1pK5ep3fJS0Fxm3Oy6uQT8Pu6cMYJXrzurbfRhOSmG2zgpmfkXETkeGB56aLuqHuxkv1uA84F7OtlOTqKqiAiHnzGTnied5fpB9D6RqHESy0kx3MZJycwi4BrgaFW9VESOF5FhqvpUqp2q6rZQ26k2kbM076ti91O303vif+M/oiwlcxGC05pxw/uyckP5ISs88YKwFk8x3MTJZsfFwAbgK6H7u4AVQMoGkwzZdi5SZ2jet5uKpdfTUl9D64HalNooKwm0S3AbffQRNiIxPMOJwRyrqjNEZBaAqjaIg6GHiLwIDIjy1A2q+menArPtXKRUCZrLPFrqa+g/45d0Pyr5uEe0eImNSAwvcXTwmogECCXdicixQMIYjKqe00lteUPz/s+peDR5cymQ4H+KajCucsEoMxMjs3CyijQf+AswSESWAC8BP02rqjyjoDCAv7SM/hf9IqmRi0+k7RymFlVWbiiPWW7SMLwgrsGEpkLbCa74/BewFBitqn/tTKci8i0R2UUwrvO0iDzXmfaylebaPbQ2HqCgexH9LlxA97LhiV8UQVNr+xmjVck3Mo24U6TQmdSrVXUUEH3bbAqo6ipglVvtZSPN+z+nYuk8/EeU0W/6fNfatSr5RibhZIq0TkQyt6JRFhKMuVxPS91eDhtzUUptFBf6oj5uWbdGJuHEYMYRNJkPQgevbRaRt9MtLFdprt0TNJfaPfS78Of0GPilpF7vE+HiMYO55VsnW9atkfE4WUWalHYVecTuJxfRsv9z+l30c3oMPCGp13bMcQHLujUym3j1YHoQLPh9HMGjYu9T1eauEpar9B5/JS0N++gxMHad2mhYjouRjcSbIj0IjCZoLpMI1oYxUqClbi/7Xn8cVcXfe5Ajc/EXCKVFfquxYmQ18aZIJ6jqyQAich/wetdIyi1a6vZSsfR6mvdVEjh+jOPjXBddeKoZipH1xBvBtJWKt6lRagTN5Qaa91XSb/oCx+ZiW0CNXCGewZwqIvtCt/3AKeGfRWRfVwnMVlrqqoPmUlNBv+nz6TH4ZMevVbCEOSMniFcyM3qiheGIxs/ep3n/7pC5nJL06y1hzsgF7BB7l9HWFqTAR+DY0ZRdfh++QK+U2rGEOSMXyMzDjLOUlvoaPnvoGuq2vwKQsrlYwpyRK9gIxiVa6muoePQGmvd+QkGPnkm91u8Tigu7UdPQZAlzRk5hBuMCkebS94KbCAwZ4fi1Ts5vNoxsxQymk9TW1lKx7MaguZz/s6TM5c4ZI8xYjJzGDKaTFBcXEzj23+nx9dkEho50/LqLxww2czFyHk8MRkQWAVOARuADYLaqVnuhJVX27NlDVVUVw4YNo/Rr33X8upKAnwVTTzRzMfICr1aRXgBOUtVTgPeAeR7pSIk9e/ZwzjnnMGHCBA4edH5ElE+ETfPHm7kYeYMnIxhVfT7i7jpguhc6UiFsLu+88w6rV6+me/fujl/bojl7KIJhRCUT8mC+Bzwb60kRuUxE1ovI+qqqqi6UdSh79+7lG9/4Blu3bmXVqlVMnDgxqdeXWfKckWekbQTj5FwkEbkBaAaWxGonk85Fmj9/Plu2bGHVqlVMmpR8Ha5xw/umQZVhZC5pM5hE5yKJyH8C5wJnq2bH3GHhwoVcdNFFfPWrX03p9Wu3ezsCM4yuxpMpkohMBK4FpqpqvRcanFJdXc1VV13F/v37KS4ujmouTt9E28Bo5BtexWB+D/QCXhCRTSLyB490xKWmpoYJEybwxz/+kQ0bNsS87vAiv6P2bAOjkW94tYp0nBf9JkNNTQ3jx49n48aNrFy5kq9//esxr62ub4r5XBjbwGjkI5mwipRxhEcuGzduZMWKFUyZMiXu9YlGJlZT18hXbKtAFD7//HMqKipYsWIF5513XsLr504YxrzHN9PQ1NL2WMDvM1Mx8h4zmAjq6+sJBAIcc8wxbN++3XESXdhE7Iwiw2iPGUyIffv2MXHiRE4//XTuvPPOpDJ0wc4oMoxoWAwG2L9/P5MmTeL111/nzDPP9FqOYeQMeW8wYXN57bXXWLZsGRdccIHXkgwjZ8hrg1FVpk2bxrp163j00UfNXAzDZfLaYESEOXPmsHTpUqZPz5oN3YaRNeRlkLe2tpZXX32VCRMmJMxxMQwjdfJuBFNbW8vkyZOZOnUqO3fu9FqOYeQ0eTWCqaurY/Lkybzyyis88sgjDBo0yGtJhpHT5M0IJtJclixZwowZM7yWZBg5T94YzLJly3j55Zd5+OGHmTlzptdyDCMvyJsp0uzZsxk1ahSnnnqq11IMI2/I6RFMfX09M2fOZPPmzYiImYthdDFeVbT7pYi8HSo29byIHOV2H/X19UydOpXly5ezZcsWt5s3DMMBXo1gFqnqKao6AngKuMnNxhsaGjjvvPNYs2YNDz74ILNmzXKzecMwHOKJwajqvoi7xYBrRb8bGhqYOnUqL730Eg888ADf+c533GraMIwk8SzIKyK3AN8FaoBxbrbt8/lYvHgx3/2u8yNdDcNwH0nXiSFOzkUKXTcP6KGq82O0cxlwGcDgwYNH7dixI2HfqoqIpKTbMIzEiMgGVR2d8DqvjyQSkaOBp1X1pETXjh49WtevX98FqgzDiIdTg/FqFen4iLtTge1e6DAMI714FYO5TUSGAa3ADuByj3QYhpFGvDoXySo7GUYekNOZvIZheIsZjGEYacPzVaRkEJEqgjEbr+kD7PZaRCfJ9t/B9HvLMFXtleiirNpNrap9vdYAICLrnSzRZTLZ/juYfm8REUf5IjZFMgwjbZjBGIaRNsxgUuNerwW4QLb/DqbfWxzpz6ogr2EY2YWNYAzDSBtmMIZhpA0zmBQRkUUisj1U+nOViJR4rckJIjJRRN4VkfdF5Dqv9SSDiAwSkbUisk1EtorIj73WlAoi4hORjSLylNdaUkFESkTksdDf/zYR+Uqsa81gUucF4CRVPQV4D5jnsZ5BrxVtAAADwklEQVSEiIgPuAuYBJwAzBKRE7xVlRTNwE9U9UvAGOCqLNMf5sfANq9FdILfAX9R1eHAqcT5XcxgUkRVn1fV5tDddcBAL/U45HTgfVX9UFUbgUeB8zzW5BhV/VRV3wz9vJ/gH3aZt6qSQ0QGApOBP3mtJRVE5DDga8B9AKraqKrVsa43g3GH7wHPei3CAWVA5IHcu8iyD2gYERkCjARe81ZJ0twJ/JRgqZJs5BigClgcmub9SUSKY11sBhMHEXlRRLZEuZ0Xcc0NBIfuS7xT6phodUSzLk9BRHoCK4E5HQrIZzQici5QqaobvNbSCboBpwF3q+pIoA6IGcvLqr1IXY2qnhPveRH5T+Bc4GzNjoSiXcCgiPsDgU880pISIuInaC5LVPVxr/UkyVhgqoh8E+gBHCYiD6vqxR7rSoZdwC5VDY8cHyOOwdgIJkVEZCJwLTBVVeu91uOQN4DjRWSoiBQCM4EnPNbkGAlWcr8P2Kaqd3itJ1lUdZ6qDlTVIQTf+zVZZi6o6mfAzlBFSoCzgXdiXW8jmNT5PdAdeCF0gsE6Vc3o0p+q2iwiPwSeA3zA/aq61WNZyTAW+A6wWUQ2hR67XlWf8VBTPvLfwJLQl9SHwOxYF9pWAcMw0oZNkQzDSBtmMIZhpA0zGMMw0oYZjGEYacMMxjCMtGHL1EYbItIbeCl0dwDQQjAtHOD00P6lrtb0HDA9tPfIyDJsmdqIiogsAGpV9TcdHheCfzdp3UvTVf0Y6cWmSEZCROS40B6sPwBvAoNEpDri+Zki8qfQz/1F5HERWS8ir4vImCjtXRKqofNcqDbNjTH6OVJEdoVr7YjI7FD9nbdEZLHT/gzvsCmS4ZQTgNmqermIxPu7+d/Ar1V1XWjH81PASVGuOz30eCPwRqj4Um1kPwChLGlE5FSCWzPOUNU9InJEkv0ZHmAGYzjlA1V9w8F15wDDwsYAlIpIQFUbOlz3nKruBRCR1cBXgb/E6ecsYJmq7gEI/5tEf4YHmMEYTqmL+LmV9qUfekT8LDgLCHcM/oXv13W8MKLdaAFDp/0ZHmAxGCNpQoHXvSJyvIgUAN+KePpF4KrwHREZEaOZ8aHarkUEq+q9mqDbF4GZ4alRxBTJaX+GB5jBGKlyLcEpzUsEa4SEuQoYGwrGvgNcGuP1rwCPABuBpaq6KcZ1AKjq28Cvgb+HdlIvSrI/wwNsmdrockTkEoIF0+d4rcVILzaCMQwjbdgIxjCMtGEjGMMw0oYZjGEYacMMxjCMtGEGYxhG2jCDMQwjbfx/dxKiYpkSVxQAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x116fedb10>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.figure(figsize=(4, 3))\n",
    "plt.scatter(y_test, y_test_pred_ridge)\n",
    "plt.plot([-3, 3], [-3, 3], '--k')\n",
    "plt.axis('tight')\n",
    "plt.xlabel('True price')\n",
    "plt.ylabel('Predicted price')\n",
    "plt.tight_layout()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 156,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x10fc48f90>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "1.0"
      ]
     },
     "execution_count": 156,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "mse_mean = np.mean(ridge.cv_values_, axis = 0)\n",
    "plt.plot(np.log10(alphas), mse_mean.reshape(len(alphas),1)) \n",
    "\n",
    "plt.xlabel('log(alpha)')\n",
    "plt.ylabel('mse')\n",
    "plt.show()\n",
    "\n",
    "ridge.alpha_"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 157,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>coef</th>\n",
       "      <th>columns</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>32</th>\n",
       "      <td>[13366626888.2]</td>\n",
       "      <td>32</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>33</th>\n",
       "      <td>[13366626888.0]</td>\n",
       "      <td>33</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>23</th>\n",
       "      <td>[13366626887.7]</td>\n",
       "      <td>23</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>34</th>\n",
       "      <td>[13366626887.4]</td>\n",
       "      <td>34</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>31</th>\n",
       "      <td>[13366626887.3]</td>\n",
       "      <td>31</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>27</th>\n",
       "      <td>[13366626887.0]</td>\n",
       "      <td>27</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>28</th>\n",
       "      <td>[13366626887.0]</td>\n",
       "      <td>28</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>22</th>\n",
       "      <td>[13366626886.9]</td>\n",
       "      <td>22</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>35</th>\n",
       "      <td>[13366626886.9]</td>\n",
       "      <td>35</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>30</th>\n",
       "      <td>[13366626886.9]</td>\n",
       "      <td>30</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>24</th>\n",
       "      <td>[13366626886.9]</td>\n",
       "      <td>24</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>29</th>\n",
       "      <td>[13366626886.9]</td>\n",
       "      <td>29</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>26</th>\n",
       "      <td>[13366626886.8]</td>\n",
       "      <td>26</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>36</th>\n",
       "      <td>[13366626886.7]</td>\n",
       "      <td>36</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>25</th>\n",
       "      <td>[13366626886.6]</td>\n",
       "      <td>25</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>37</th>\n",
       "      <td>[13366626886.5]</td>\n",
       "      <td>37</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>38</th>\n",
       "      <td>[13366626886.2]</td>\n",
       "      <td>38</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>21</th>\n",
       "      <td>[13366626886.2]</td>\n",
       "      <td>21</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>15</th>\n",
       "      <td>[13366626886.0]</td>\n",
       "      <td>15</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>16</th>\n",
       "      <td>[13366626885.9]</td>\n",
       "      <td>16</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>17</th>\n",
       "      <td>[13366626885.9]</td>\n",
       "      <td>17</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>20</th>\n",
       "      <td>[13366626885.9]</td>\n",
       "      <td>20</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>18</th>\n",
       "      <td>[13366626885.8]</td>\n",
       "      <td>18</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>19</th>\n",
       "      <td>[13366626885.8]</td>\n",
       "      <td>19</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>[1.26259466353]</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>[-0.120112794421]</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>[-0.566737148929]</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>[-2.41865976107e+12]</td>\n",
       "      <td>7</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8</th>\n",
       "      <td>[-2.41865976107e+12]</td>\n",
       "      <td>8</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>11</th>\n",
       "      <td>[-2.41865976107e+12]</td>\n",
       "      <td>11</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>12</th>\n",
       "      <td>[-2.41865976107e+12]</td>\n",
       "      <td>12</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>10</th>\n",
       "      <td>[-2.41865976107e+12]</td>\n",
       "      <td>10</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>[-2.41865976107e+12]</td>\n",
       "      <td>6</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9</th>\n",
       "      <td>[-2.41865976107e+12]</td>\n",
       "      <td>9</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>14</th>\n",
       "      <td>[-2.41865976107e+12]</td>\n",
       "      <td>14</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>13</th>\n",
       "      <td>[-2.41865976107e+12]</td>\n",
       "      <td>13</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>[-2.41865976107e+12]</td>\n",
       "      <td>5</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>[-2.41865976107e+12]</td>\n",
       "      <td>4</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>[-2.41865976107e+12]</td>\n",
       "      <td>3</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>53</th>\n",
       "      <td>[-3.31047836959e+12]</td>\n",
       "      <td>53</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>52</th>\n",
       "      <td>[-3.31047836959e+12]</td>\n",
       "      <td>52</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>51</th>\n",
       "      <td>[-3.31047836959e+12]</td>\n",
       "      <td>51</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>50</th>\n",
       "      <td>[-3.31047836959e+12]</td>\n",
       "      <td>50</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>55</th>\n",
       "      <td>[-3.48821385052e+12]</td>\n",
       "      <td>55</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>54</th>\n",
       "      <td>[-3.48821385052e+12]</td>\n",
       "      <td>54</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>46</th>\n",
       "      <td>[-4.30377516506e+12]</td>\n",
       "      <td>46</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>47</th>\n",
       "      <td>[-4.30377516506e+12]</td>\n",
       "      <td>47</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>48</th>\n",
       "      <td>[-4.30377516506e+12]</td>\n",
       "      <td>48</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>49</th>\n",
       "      <td>[-4.30377516506e+12]</td>\n",
       "      <td>49</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>44</th>\n",
       "      <td>[-6.15087081147e+12]</td>\n",
       "      <td>44</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>40</th>\n",
       "      <td>[-6.15087081147e+12]</td>\n",
       "      <td>40</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>41</th>\n",
       "      <td>[-6.15087081147e+12]</td>\n",
       "      <td>41</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>42</th>\n",
       "      <td>[-6.15087081147e+12]</td>\n",
       "      <td>42</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>43</th>\n",
       "      <td>[-6.15087081147e+12]</td>\n",
       "      <td>43</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>45</th>\n",
       "      <td>[-9.639084662e+12]</td>\n",
       "      <td>45</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>39</th>\n",
       "      <td>[-9.639084662e+12]</td>\n",
       "      <td>39</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                    coef  columns\n",
       "32       [13366626888.2]       32\n",
       "33       [13366626888.0]       33\n",
       "23       [13366626887.7]       23\n",
       "34       [13366626887.4]       34\n",
       "31       [13366626887.3]       31\n",
       "27       [13366626887.0]       27\n",
       "28       [13366626887.0]       28\n",
       "22       [13366626886.9]       22\n",
       "35       [13366626886.9]       35\n",
       "30       [13366626886.9]       30\n",
       "24       [13366626886.9]       24\n",
       "29       [13366626886.9]       29\n",
       "26       [13366626886.8]       26\n",
       "36       [13366626886.7]       36\n",
       "25       [13366626886.6]       25\n",
       "37       [13366626886.5]       37\n",
       "38       [13366626886.2]       38\n",
       "21       [13366626886.2]       21\n",
       "15       [13366626886.0]       15\n",
       "16       [13366626885.9]       16\n",
       "17       [13366626885.9]       17\n",
       "20       [13366626885.9]       20\n",
       "18       [13366626885.8]       18\n",
       "19       [13366626885.8]       19\n",
       "0        [1.26259466353]        0\n",
       "2      [-0.120112794421]        2\n",
       "1      [-0.566737148929]        1\n",
       "7   [-2.41865976107e+12]        7\n",
       "8   [-2.41865976107e+12]        8\n",
       "11  [-2.41865976107e+12]       11\n",
       "12  [-2.41865976107e+12]       12\n",
       "10  [-2.41865976107e+12]       10\n",
       "6   [-2.41865976107e+12]        6\n",
       "9   [-2.41865976107e+12]        9\n",
       "14  [-2.41865976107e+12]       14\n",
       "13  [-2.41865976107e+12]       13\n",
       "5   [-2.41865976107e+12]        5\n",
       "4   [-2.41865976107e+12]        4\n",
       "3   [-2.41865976107e+12]        3\n",
       "53  [-3.31047836959e+12]       53\n",
       "52  [-3.31047836959e+12]       52\n",
       "51  [-3.31047836959e+12]       51\n",
       "50  [-3.31047836959e+12]       50\n",
       "55  [-3.48821385052e+12]       55\n",
       "54  [-3.48821385052e+12]       54\n",
       "46  [-4.30377516506e+12]       46\n",
       "47  [-4.30377516506e+12]       47\n",
       "48  [-4.30377516506e+12]       48\n",
       "49  [-4.30377516506e+12]       49\n",
       "44  [-6.15087081147e+12]       44\n",
       "40  [-6.15087081147e+12]       40\n",
       "41  [-6.15087081147e+12]       41\n",
       "42  [-6.15087081147e+12]       42\n",
       "43  [-6.15087081147e+12]       43\n",
       "45    [-9.639084662e+12]       45\n",
       "39    [-9.639084662e+12]       39"
      ]
     },
     "execution_count": 157,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "fs = pd.DataFrame({\"columns\":range(X_train.shape[1]), \"coef\":list((lr_model.coef_.T))})\n",
    "fs.sort_values(by=['coef'],ascending=False)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 158,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/Users/Cubianyu/anaconda2/lib/python2.7/site-packages/sklearn/linear_model/coordinate_descent.py:1094: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "0.59901634008825133"
      ]
     },
     "execution_count": 158,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from sklearn.linear_model import LassoCV\n",
    "lasso = LassoCV()  \n",
    "\n",
    "lasso.fit(X_train, y_train)  \n",
    "\n",
    "y_test_pred_lasso = lasso.predict(X_test)\n",
    "r2_score(y_test, y_test_pred_lasso)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 159,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.6844731647311546"
      ]
     },
     "execution_count": 159,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "y_train_pred_lasso = lasso.predict(X_train)\n",
    "r2_score(y_train, y_train_pred_lasso)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 160,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x110def750>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "0.0001274121880773477"
      ]
     },
     "execution_count": 160,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "mses = np.mean(lasso.mse_path_, axis = 1)\n",
    "plt.plot(np.log10(lasso.alphas_), mses) \n",
    "#plt.plot(np.log10(lasso.alphas_)*np.ones(3), [0.3, 0.4, 1.0])\n",
    "plt.xlabel('log(alpha)')\n",
    "plt.ylabel('mse')\n",
    "plt.show()    \n",
    "            \n",
    "lasso.alpha_"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 162,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>coef_lasso</th>\n",
       "      <th>coef_lr</th>\n",
       "      <th>coef_ridge</th>\n",
       "      <th>columns</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>32</th>\n",
       "      <td>1.284097</td>\n",
       "      <td>[13366626888.2]</td>\n",
       "      <td>[1.44470611475]</td>\n",
       "      <td>32</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>33</th>\n",
       "      <td>1.094705</td>\n",
       "      <td>[13366626888.0]</td>\n",
       "      <td>[1.25543704761]</td>\n",
       "      <td>33</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>23</th>\n",
       "      <td>0.817552</td>\n",
       "      <td>[13366626887.7]</td>\n",
       "      <td>[0.976966039543]</td>\n",
       "      <td>23</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>34</th>\n",
       "      <td>0.491868</td>\n",
       "      <td>[13366626887.4]</td>\n",
       "      <td>[0.653727349213]</td>\n",
       "      <td>34</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>31</th>\n",
       "      <td>0.392492</td>\n",
       "      <td>[13366626887.3]</td>\n",
       "      <td>[0.556594175976]</td>\n",
       "      <td>31</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>27</th>\n",
       "      <td>0.096370</td>\n",
       "      <td>[13366626887.0]</td>\n",
       "      <td>[0.259862970309]</td>\n",
       "      <td>27</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>28</th>\n",
       "      <td>0.076006</td>\n",
       "      <td>[13366626887.0]</td>\n",
       "      <td>[0.23996431322]</td>\n",
       "      <td>28</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>22</th>\n",
       "      <td>0.056951</td>\n",
       "      <td>[13366626886.9]</td>\n",
       "      <td>[0.217891690251]</td>\n",
       "      <td>22</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>35</th>\n",
       "      <td>0.049970</td>\n",
       "      <td>[13366626886.9]</td>\n",
       "      <td>[0.212623711436]</td>\n",
       "      <td>35</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>30</th>\n",
       "      <td>0.040872</td>\n",
       "      <td>[13366626886.9]</td>\n",
       "      <td>[0.205326590369]</td>\n",
       "      <td>30</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>24</th>\n",
       "      <td>0.030330</td>\n",
       "      <td>[13366626886.9]</td>\n",
       "      <td>[0.19253715757]</td>\n",
       "      <td>24</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>29</th>\n",
       "      <td>0.000000</td>\n",
       "      <td>[13366626886.9]</td>\n",
       "      <td>[0.164463971507]</td>\n",
       "      <td>29</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>26</th>\n",
       "      <td>-0.117188</td>\n",
       "      <td>[13366626886.8]</td>\n",
       "      <td>[0.0403578239455]</td>\n",
       "      <td>26</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>36</th>\n",
       "      <td>-0.212795</td>\n",
       "      <td>[13366626886.7]</td>\n",
       "      <td>[-0.0558980921035]</td>\n",
       "      <td>36</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>25</th>\n",
       "      <td>-0.259195</td>\n",
       "      <td>[13366626886.6]</td>\n",
       "      <td>[-0.101740719245]</td>\n",
       "      <td>25</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>37</th>\n",
       "      <td>-0.417484</td>\n",
       "      <td>[13366626886.5]</td>\n",
       "      <td>[-0.260298516884]</td>\n",
       "      <td>37</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>38</th>\n",
       "      <td>-0.651568</td>\n",
       "      <td>[13366626886.2]</td>\n",
       "      <td>[-0.493978810281]</td>\n",
       "      <td>38</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>21</th>\n",
       "      <td>-0.669759</td>\n",
       "      <td>[13366626886.2]</td>\n",
       "      <td>[-0.513188847018]</td>\n",
       "      <td>21</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>15</th>\n",
       "      <td>-0.841293</td>\n",
       "      <td>[13366626886.0]</td>\n",
       "      <td>[-0.683469717195]</td>\n",
       "      <td>15</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>16</th>\n",
       "      <td>-0.946243</td>\n",
       "      <td>[13366626885.9]</td>\n",
       "      <td>[-0.788349694742]</td>\n",
       "      <td>16</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>17</th>\n",
       "      <td>-0.995305</td>\n",
       "      <td>[13366626885.9]</td>\n",
       "      <td>[-0.837458559604]</td>\n",
       "      <td>17</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>20</th>\n",
       "      <td>-1.000540</td>\n",
       "      <td>[13366626885.9]</td>\n",
       "      <td>[-0.843246846377]</td>\n",
       "      <td>20</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>18</th>\n",
       "      <td>-1.062407</td>\n",
       "      <td>[13366626885.8]</td>\n",
       "      <td>[-0.904589796792]</td>\n",
       "      <td>18</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>19</th>\n",
       "      <td>-1.095995</td>\n",
       "      <td>[13366626885.8]</td>\n",
       "      <td>[-0.938239355457]</td>\n",
       "      <td>19</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>1.280481</td>\n",
       "      <td>[1.26259466353]</td>\n",
       "      <td>[1.24888445134]</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>-0.111417</td>\n",
       "      <td>[-0.120112794421]</td>\n",
       "      <td>[-0.118889800543]</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>-0.566956</td>\n",
       "      <td>[-0.566737148929]</td>\n",
       "      <td>[-0.569080084283]</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>0.264582</td>\n",
       "      <td>[-2.41865976107e+12]</td>\n",
       "      <td>[0.284495255117]</td>\n",
       "      <td>7</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8</th>\n",
       "      <td>0.151176</td>\n",
       "      <td>[-2.41865976107e+12]</td>\n",
       "      <td>[0.171464765776]</td>\n",
       "      <td>8</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>11</th>\n",
       "      <td>0.139259</td>\n",
       "      <td>[-2.41865976107e+12]</td>\n",
       "      <td>[0.150694923997]</td>\n",
       "      <td>11</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>12</th>\n",
       "      <td>0.059581</td>\n",
       "      <td>[-2.41865976107e+12]</td>\n",
       "      <td>[0.0625847976225]</td>\n",
       "      <td>12</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>10</th>\n",
       "      <td>0.006050</td>\n",
       "      <td>[-2.41865976107e+12]</td>\n",
       "      <td>[0.0219964237982]</td>\n",
       "      <td>10</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>0.000000</td>\n",
       "      <td>[-2.41865976107e+12]</td>\n",
       "      <td>[0.0178102327713]</td>\n",
       "      <td>6</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9</th>\n",
       "      <td>-0.071199</td>\n",
       "      <td>[-2.41865976107e+12]</td>\n",
       "      <td>[-0.056382242921]</td>\n",
       "      <td>9</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>14</th>\n",
       "      <td>-0.062770</td>\n",
       "      <td>[-2.41865976107e+12]</td>\n",
       "      <td>[-0.0667937677668]</td>\n",
       "      <td>14</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>13</th>\n",
       "      <td>-0.065443</td>\n",
       "      <td>[-2.41865976107e+12]</td>\n",
       "      <td>[-0.0670708144288]</td>\n",
       "      <td>13</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>-0.139264</td>\n",
       "      <td>[-2.41865976107e+12]</td>\n",
       "      <td>[-0.13797452041]</td>\n",
       "      <td>5</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>-0.161086</td>\n",
       "      <td>[-2.41865976107e+12]</td>\n",
       "      <td>[-0.166048633013]</td>\n",
       "      <td>4</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>-0.207427</td>\n",
       "      <td>[-2.41865976107e+12]</td>\n",
       "      <td>[-0.214776420541]</td>\n",
       "      <td>3</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>53</th>\n",
       "      <td>0.121839</td>\n",
       "      <td>[-3.31047836959e+12]</td>\n",
       "      <td>[0.178108650872]</td>\n",
       "      <td>53</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>52</th>\n",
       "      <td>0.000012</td>\n",
       "      <td>[-3.31047836959e+12]</td>\n",
       "      <td>[0.0493000919511]</td>\n",
       "      <td>52</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>51</th>\n",
       "      <td>-0.088644</td>\n",
       "      <td>[-3.31047836959e+12]</td>\n",
       "      <td>[-0.046689539583]</td>\n",
       "      <td>51</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>50</th>\n",
       "      <td>-0.236713</td>\n",
       "      <td>[-3.31047836959e+12]</td>\n",
       "      <td>[-0.18071920324]</td>\n",
       "      <td>50</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>55</th>\n",
       "      <td>0.007695</td>\n",
       "      <td>[-3.48821385052e+12]</td>\n",
       "      <td>[0.0303226705545]</td>\n",
       "      <td>55</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>54</th>\n",
       "      <td>-0.096736</td>\n",
       "      <td>[-3.48821385052e+12]</td>\n",
       "      <td>[-0.0788084066695]</td>\n",
       "      <td>54</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>46</th>\n",
       "      <td>0.035041</td>\n",
       "      <td>[-4.30377516506e+12]</td>\n",
       "      <td>[0.176196323189]</td>\n",
       "      <td>46</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>47</th>\n",
       "      <td>0.000000</td>\n",
       "      <td>[-4.30377516506e+12]</td>\n",
       "      <td>[0.141587810372]</td>\n",
       "      <td>47</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>48</th>\n",
       "      <td>-0.313582</td>\n",
       "      <td>[-4.30377516506e+12]</td>\n",
       "      <td>[-0.173534392404]</td>\n",
       "      <td>48</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>49</th>\n",
       "      <td>-0.000000</td>\n",
       "      <td>[-4.30377516506e+12]</td>\n",
       "      <td>[-0.144249741157]</td>\n",
       "      <td>49</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>44</th>\n",
       "      <td>0.025862</td>\n",
       "      <td>[-6.15087081147e+12]</td>\n",
       "      <td>[0.0182621227298]</td>\n",
       "      <td>44</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>40</th>\n",
       "      <td>0.000000</td>\n",
       "      <td>[-6.15087081147e+12]</td>\n",
       "      <td>[-0.00678192125129]</td>\n",
       "      <td>40</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>41</th>\n",
       "      <td>0.000000</td>\n",
       "      <td>[-6.15087081147e+12]</td>\n",
       "      <td>[-0.0069468945575]</td>\n",
       "      <td>41</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>42</th>\n",
       "      <td>-0.011617</td>\n",
       "      <td>[-6.15087081147e+12]</td>\n",
       "      <td>[-0.0198208103101]</td>\n",
       "      <td>42</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>43</th>\n",
       "      <td>-0.024610</td>\n",
       "      <td>[-6.15087081147e+12]</td>\n",
       "      <td>[-0.0331982327259]</td>\n",
       "      <td>43</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>45</th>\n",
       "      <td>0.024438</td>\n",
       "      <td>[-9.639084662e+12]</td>\n",
       "      <td>[0.0394688457839]</td>\n",
       "      <td>45</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>39</th>\n",
       "      <td>-0.004487</td>\n",
       "      <td>[-9.639084662e+12]</td>\n",
       "      <td>[0.00901689033115]</td>\n",
       "      <td>39</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "    coef_lasso               coef_lr           coef_ridge  columns\n",
       "32    1.284097       [13366626888.2]      [1.44470611475]       32\n",
       "33    1.094705       [13366626888.0]      [1.25543704761]       33\n",
       "23    0.817552       [13366626887.7]     [0.976966039543]       23\n",
       "34    0.491868       [13366626887.4]     [0.653727349213]       34\n",
       "31    0.392492       [13366626887.3]     [0.556594175976]       31\n",
       "27    0.096370       [13366626887.0]     [0.259862970309]       27\n",
       "28    0.076006       [13366626887.0]      [0.23996431322]       28\n",
       "22    0.056951       [13366626886.9]     [0.217891690251]       22\n",
       "35    0.049970       [13366626886.9]     [0.212623711436]       35\n",
       "30    0.040872       [13366626886.9]     [0.205326590369]       30\n",
       "24    0.030330       [13366626886.9]      [0.19253715757]       24\n",
       "29    0.000000       [13366626886.9]     [0.164463971507]       29\n",
       "26   -0.117188       [13366626886.8]    [0.0403578239455]       26\n",
       "36   -0.212795       [13366626886.7]   [-0.0558980921035]       36\n",
       "25   -0.259195       [13366626886.6]    [-0.101740719245]       25\n",
       "37   -0.417484       [13366626886.5]    [-0.260298516884]       37\n",
       "38   -0.651568       [13366626886.2]    [-0.493978810281]       38\n",
       "21   -0.669759       [13366626886.2]    [-0.513188847018]       21\n",
       "15   -0.841293       [13366626886.0]    [-0.683469717195]       15\n",
       "16   -0.946243       [13366626885.9]    [-0.788349694742]       16\n",
       "17   -0.995305       [13366626885.9]    [-0.837458559604]       17\n",
       "20   -1.000540       [13366626885.9]    [-0.843246846377]       20\n",
       "18   -1.062407       [13366626885.8]    [-0.904589796792]       18\n",
       "19   -1.095995       [13366626885.8]    [-0.938239355457]       19\n",
       "0     1.280481       [1.26259466353]      [1.24888445134]        0\n",
       "2    -0.111417     [-0.120112794421]    [-0.118889800543]        2\n",
       "1    -0.566956     [-0.566737148929]    [-0.569080084283]        1\n",
       "7     0.264582  [-2.41865976107e+12]     [0.284495255117]        7\n",
       "8     0.151176  [-2.41865976107e+12]     [0.171464765776]        8\n",
       "11    0.139259  [-2.41865976107e+12]     [0.150694923997]       11\n",
       "12    0.059581  [-2.41865976107e+12]    [0.0625847976225]       12\n",
       "10    0.006050  [-2.41865976107e+12]    [0.0219964237982]       10\n",
       "6     0.000000  [-2.41865976107e+12]    [0.0178102327713]        6\n",
       "9    -0.071199  [-2.41865976107e+12]    [-0.056382242921]        9\n",
       "14   -0.062770  [-2.41865976107e+12]   [-0.0667937677668]       14\n",
       "13   -0.065443  [-2.41865976107e+12]   [-0.0670708144288]       13\n",
       "5    -0.139264  [-2.41865976107e+12]     [-0.13797452041]        5\n",
       "4    -0.161086  [-2.41865976107e+12]    [-0.166048633013]        4\n",
       "3    -0.207427  [-2.41865976107e+12]    [-0.214776420541]        3\n",
       "53    0.121839  [-3.31047836959e+12]     [0.178108650872]       53\n",
       "52    0.000012  [-3.31047836959e+12]    [0.0493000919511]       52\n",
       "51   -0.088644  [-3.31047836959e+12]    [-0.046689539583]       51\n",
       "50   -0.236713  [-3.31047836959e+12]     [-0.18071920324]       50\n",
       "55    0.007695  [-3.48821385052e+12]    [0.0303226705545]       55\n",
       "54   -0.096736  [-3.48821385052e+12]   [-0.0788084066695]       54\n",
       "46    0.035041  [-4.30377516506e+12]     [0.176196323189]       46\n",
       "47    0.000000  [-4.30377516506e+12]     [0.141587810372]       47\n",
       "48   -0.313582  [-4.30377516506e+12]    [-0.173534392404]       48\n",
       "49   -0.000000  [-4.30377516506e+12]    [-0.144249741157]       49\n",
       "44    0.025862  [-6.15087081147e+12]    [0.0182621227298]       44\n",
       "40    0.000000  [-6.15087081147e+12]  [-0.00678192125129]       40\n",
       "41    0.000000  [-6.15087081147e+12]   [-0.0069468945575]       41\n",
       "42   -0.011617  [-6.15087081147e+12]   [-0.0198208103101]       42\n",
       "43   -0.024610  [-6.15087081147e+12]   [-0.0331982327259]       43\n",
       "45    0.024438    [-9.639084662e+12]    [0.0394688457839]       45\n",
       "39   -0.004487    [-9.639084662e+12]   [0.00901689033115]       39"
      ]
     },
     "execution_count": 162,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "fs = pd.DataFrame({\"columns\":range(X_train.shape[1]), \"coef_lr\":list((lr_model.coef_.T)), \"coef_ridge\":list((ridge.coef_.T)), \"coef_lasso\":list((lasso.coef_.T))})\n",
    "fs.sort_values(by=['coef_lr'],ascending=False)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 2",
   "language": "python",
   "name": "python2"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 2
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython2",
   "version": "2.7.14"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
